As a Member, I want to manage my membership card, so that I can check and update personal information{
	Basic Flow {
    (User) 1. the Member shall log in to system.
    (User) 2. the Member shall select Manage_Membership_Card button from profile menu.
    (System) 3. When selecting Manage_Membership_Card button, the GymSystem shall display card details.
    (User) 4. the Member shall choose an operation.
    (System) 5. When updating contact info, the GymSystem shall validate input format and save changes.
  }

  Alternative Flow {
    A. At any time, membership card is expired :
      1. System automatically sets card status to Inactive.
      2. System sends an SMS and email reminder to Member.
    B. At any time, reporting loss :
      1. Member confirms loss request.
      2. System freezes card and generates a case ID.
      3. System notifies Receptionist to process replacement.
  }
} 

As a Member, I want to book fitness courses, so that I can participate in training sessions{
	Basic Flow {
    (User) 1. the Member shall view course schedule.
    (User) 2. the Member shall select a course with available slots.
    (System) 3. When selecting a course, the GymSystem shall reserve a slot.
    (System) 4. the GymSystem shall send a confirmation email to Member.
  }

  Alternative Flow {
    A. At any time, course is full :
      1. System displays tips for full courses and suggests alternative courses.
  }
}

As a Member, I want to view course schedule, so that I can plan my time effectively{
	Basic Flow {
    (User) 1. the Member shall select View_Schedule button from main menu.
    (System) 2. the GymSystem shall display courses sorted by date and time.
    (System) 3. the GymSystem shall highlight courses already booked by Member.
  }

  Alternative Flow {
    A. At any time, Member filters by coach or course type :
      1. System reloads schedule with filtered results.
  }
}

As a Member, I want to cancel a reservation, so that I can adjust my schedule{
	Basic Flow {
    (User) 1. the Member shall select Reservations button from main menu.
    (User) 2. the Member shall select a reservation to cancel.
    (System) 4. the GymSystem shall update course availability.
  }

  Alternative Flow {
    A. At any time, Member cancel reservation within an hour before courses start :
      1. System blocks cancellation and displays a warning message.
  }
}

As a Stuff, I want to send reminders before courses start, so that members can attend on time{
	Basic Flow {
    (User) 1. the Stuff shall log in to system.
    (User) 2. the Stuff shall select a scheduled course.
    (System) 3. When selecting Send_Reminder, the GymSystem shall push notifications to all booked members.
  }

  Alternative Flow {
    
  }
}

As a Stuff, I want to manage membership cards, so that I can activate or modify member accounts{
	Basic Flow {
    (User) 1. the Stuff shall log in to admin portal.
    (User) 2. the Stuff shall search for a member by name or ID.
    (System) 3. When a member is selected, the GymSystem shall display membership card details.
    (User) 4. the Stuff shall edit card status to activate or freeze.
    (System) 5. the GymSystem shall sync changes to database immediately.
  }

  Alternative Flow {
    A. At any time, an expired card is modified :
      1. System requires Receptionist to confirm renewal payment before activation.
  }
}

As a Stuff, I want to track course attendance rates, so that I can optimize class schedule{
	Basic Flow {
    (User) 1. the Stuff shall select Attendance_Report from dashboard.
    (System) 2. the GymSystem shall generate a report showing attendance per course.
    (System) 3. the GymSystem shall export report as a CSV file.
  }

  Alternative Flow {
    A. At any time, no attendance data is available :
      1. System displays mo records message and suggests checking course dates.
  }
}

As a Stuff, I want to limit number of participants per course, so that quality of sessions is maintained{
	Basic Flow {
    (User) 1. the Stuff shall set a maximum participant limit for a course.
    (System) 2. When members attempt to book, the GymSystem shall enforce its limit.
  }

  Alternative Flow {
    A. At any time, Coach increases limit after a course is full :
      1. System notifies waitlisted members of new availability.
  }
}